# 改变了继承关系：师傅 - 学校 - 徒弟

# 师傅类
class Master(object):
    def __init__(self):
        self.kongfu = '[古法煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')


# 学校类
class School(Master):
    def __init__(self):
        self.kongfu = '[黑马煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')


# 徒弟类
class Prentice(School):
    def __init__(self):
        self.kongfu = '[独创煎饼果子配方]'

    # 做独创煎饼果子
    def make_cake(self):
        self.__init__()
        print(f'运用{self.kongfu}制作煎饼果子')

    # 做古法煎饼果子
    def make_master_cake(self):
        Master.__init__(self)
        Master.make_cake(self)

    # 做黑马煎饼果子
    def make_school_cake(self):
        School.__init__(self)
        School.make_cake(self)


    # 调用父类的方法 -- 遵循__mro__顺序
    # 方法一：如果父类的类名修改，代码也要修改；代码量庞大
    def make_old_cake1(self):
        Master.__init__(self)
        Master.make_cake(self)

        School.__init__(self)
        School.make_cake(self)

    # 方法二：
    # 2.1 super(当前类名, self).函数()
    def make_old_cake2(self):
        super(Prentice,self).__init__()
        super(Prentice,self).make_cake()

    # 2.2 super().函数()
    def make_old_cake3(self):
        super().__init__()
        super().make_cake()

# 测试
tudi = Prentice()
tudi.make_old_cake2()